home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / scripts / mkcompile_h < prev    next >
Encoding:
Text File  |  2008-12-24  |  2.5 KB  |  96 lines

  1. TARGET=$1
  2. ARCH=$2
  3. SMP=$3
  4. PREEMPT=$4
  5. CC=$5
  6.  
  7. # If compile.h exists already and we don't own autoconf.h
  8. # (i.e. we're not the same user who did make *config), don't
  9. # modify compile.h
  10. # So "sudo make install" won't change the "compiled by <user>"
  11. # do "compiled by root"
  12.  
  13. if [ -r $TARGET -a ! -O include/linux/autoconf.h ]; then
  14.   echo "  SKIPPED $TARGET"
  15.   exit 0
  16. fi
  17.  
  18. # Do not expand names
  19. set -f
  20.  
  21. # Fix the language to get consistent output
  22. LC_ALL=C
  23. export LC_ALL
  24.  
  25. if [ -z "$KBUILD_BUILD_VERSION" ]; then
  26.     if [ -r .version ]; then
  27.         VERSION=`cat .version`
  28.     else
  29.         VERSION=0
  30.         echo 0 > .version
  31.     fi
  32. else
  33.     VERSION=$KBUILD_BUILD_VERSION
  34. fi
  35.  
  36. if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
  37.     TIMESTAMP=`date`
  38. else
  39.     TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
  40. fi
  41.  
  42. UTS_VERSION="#$VERSION"
  43. CONFIG_FLAGS=""
  44. if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
  45. if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
  46. UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
  47.  
  48. # Truncate to maximum length
  49.  
  50. UTS_LEN=64
  51. UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/"
  52.  
  53. # Generate a temporary compile.h
  54.  
  55. ( echo /\* This file is auto generated, version $VERSION \*/
  56.   if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi
  57.   
  58.   echo \#define UTS_MACHINE \"$ARCH\"
  59.  
  60.   echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
  61.  
  62.   echo \#define LINUX_COMPILE_TIME \"`date +%T`\"
  63.   echo \#define LINUX_COMPILE_BY \"`whoami`\"
  64.   echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
  65.  
  66.   if [ -x /bin/dnsdomainname ]; then
  67.     echo \#define LINUX_COMPILE_DOMAIN \"`dnsdomainname | $UTS_TRUNCATE`\"
  68.   elif [ -x /bin/domainname ]; then
  69.     echo \#define LINUX_COMPILE_DOMAIN \"`domainname | $UTS_TRUNCATE`\"
  70.   else
  71.     echo \#define LINUX_COMPILE_DOMAIN
  72.   fi
  73.  
  74.   echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
  75. ) > .tmpcompile
  76.  
  77. # Only replace the real compile.h if the new one is different,
  78. # in order to preserve the timestamp and avoid unnecessary
  79. # recompilations.
  80. # We don't consider the file changed if only the date/time changed.
  81. # A kernel config change will increase the generation number, thus
  82. # causing compile.h to be updated (including date/time) due to the 
  83. # changed comment in the
  84. # first line.
  85.  
  86. if [ -r $TARGET ] && \
  87.       grep -v 'UTS_VERSION\|LINUX_COMPILE_TIME' $TARGET > .tmpver.1 && \
  88.       grep -v 'UTS_VERSION\|LINUX_COMPILE_TIME' .tmpcompile > .tmpver.2 && \
  89.       cmp -s .tmpver.1 .tmpver.2; then
  90.    rm -f .tmpcompile
  91. else
  92.    echo "  UPD     $TARGET"
  93.    mv -f .tmpcompile $TARGET
  94. fi
  95. rm -f .tmpver.1 .tmpver.2
  96.